package com.example.victory.swagger.model;

import java.util.Objects;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.ArrayList;
import java.util.List;
import org.springframework.validation.annotation.Validated;
import javax.validation.Valid;

/**
 * 客户筛选条件
 */
@ApiModel(description = "客户筛选条件")
@Validated
@javax.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2021-04-26T10:50:39.083+08:00")

public class CustomerFilter   {
  @JsonProperty("customerList")
  @Valid
  private List<CustomerFilterCustomerList> customerList = null;

  @JsonProperty("riskLevel")
  private String riskLevel = null;

  @JsonProperty("search")
  private String search = null;

  @JsonProperty("isStore")
  private String isStore = null;

  @JsonProperty("customerLevel")
  private String customerLevel = null;

  @JsonProperty("relationType")
  private String relationType = null;

  @JsonProperty("asset")
  private CustomerFilterAsset asset = null;

  @JsonProperty("isActive")
  private String isActive = null;

  public CustomerFilter customerList(List<CustomerFilterCustomerList> customerList) {
    this.customerList = customerList;
    return this;
  }

  public CustomerFilter addCustomerListItem(CustomerFilterCustomerList customerListItem) {
    if (this.customerList == null) {
      this.customerList = new ArrayList<CustomerFilterCustomerList>();
    }
    this.customerList.add(customerListItem);
    return this;
  }

  /**
   * Get customerList
   * @return customerList
  **/
  @ApiModelProperty(value = "")

  @Valid

  public List<CustomerFilterCustomerList> getCustomerList() {
    return customerList;
  }

  public void setCustomerList(List<CustomerFilterCustomerList> customerList) {
    this.customerList = customerList;
  }

  public CustomerFilter riskLevel(String riskLevel) {
    this.riskLevel = riskLevel;
    return this;
  }

  /**
   * 风险评级，0 保守型(最低);1-保守型;2-谨慎型;3-稳健型;4-积极型;5-激进型
   * @return riskLevel
  **/
  @ApiModelProperty(example = "1", value = "风险评级，0 保守型(最低);1-保守型;2-谨慎型;3-稳健型;4-积极型;5-激进型")


  public String getRiskLevel() {
    return riskLevel;
  }

  public void setRiskLevel(String riskLevel) {
    this.riskLevel = riskLevel;
  }

  public CustomerFilter search(String search) {
    this.search = search;
    return this;
  }

  /**
   * 模糊搜索 姓名迷糊,手机号码以及客户号精确搜索
   * @return search
  **/
  @ApiModelProperty(example = "80000001718", value = "模糊搜索 姓名迷糊,手机号码以及客户号精确搜索")


  public String getSearch() {
    return search;
  }

  public void setSearch(String search) {
    this.search = search;
  }

  public CustomerFilter isStore(String isStore) {
    this.isStore = isStore;
    return this;
  }

  /**
   * 是否收藏，1 收藏；0未收藏
   * @return isStore
  **/
  @ApiModelProperty(example = "1", value = "是否收藏，1 收藏；0未收藏")


  public String getIsStore() {
    return isStore;
  }

  public void setIsStore(String isStore) {
    this.isStore = isStore;
  }

  public CustomerFilter customerLevel(String customerLevel) {
    this.customerLevel = customerLevel;
    return this;
  }

  /**
   * 客户等级，1 一级;2 二级;3 三级;4 四级;5 五级
   * @return customerLevel
  **/
  @ApiModelProperty(example = "1", value = "客户等级，1 一级;2 二级;3 三级;4 四级;5 五级")


  public String getCustomerLevel() {
    return customerLevel;
  }

  public void setCustomerLevel(String customerLevel) {
    this.customerLevel = customerLevel;
  }

  public CustomerFilter relationType(String relationType) {
    this.relationType = relationType;
    return this;
  }

  /**
   * 客户关系，1;服务关系;2:签约关系; 6:激活服务关系; 8:线上投顾服务关系;10:开发关系
   * @return relationType
  **/
  @ApiModelProperty(example = "1", value = "客户关系，1;服务关系;2:签约关系; 6:激活服务关系; 8:线上投顾服务关系;10:开发关系")


  public String getRelationType() {
    return relationType;
  }

  public void setRelationType(String relationType) {
    this.relationType = relationType;
  }

  public CustomerFilter asset(CustomerFilterAsset asset) {
    this.asset = asset;
    return this;
  }

  /**
   * Get asset
   * @return asset
  **/
  @ApiModelProperty(value = "")

  @Valid

  public CustomerFilterAsset getAsset() {
    return asset;
  }

  public void setAsset(CustomerFilterAsset asset) {
    this.asset = asset;
  }

  public CustomerFilter isActive(String isActive) {
    this.isActive = isActive;
    return this;
  }

  /**
   * 练金术激活状态，1 已激活；0 未激活
   * @return isActive
  **/
  @ApiModelProperty(example = "1", value = "练金术激活状态，1 已激活；0 未激活")


  public String getIsActive() {
    return isActive;
  }

  public void setIsActive(String isActive) {
    this.isActive = isActive;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    CustomerFilter customerFilter = (CustomerFilter) o;
    return Objects.equals(this.customerList, customerFilter.customerList) &&
        Objects.equals(this.riskLevel, customerFilter.riskLevel) &&
        Objects.equals(this.search, customerFilter.search) &&
        Objects.equals(this.isStore, customerFilter.isStore) &&
        Objects.equals(this.customerLevel, customerFilter.customerLevel) &&
        Objects.equals(this.relationType, customerFilter.relationType) &&
        Objects.equals(this.asset, customerFilter.asset) &&
        Objects.equals(this.isActive, customerFilter.isActive);
  }

  @Override
  public int hashCode() {
    return Objects.hash(customerList, riskLevel, search, isStore, customerLevel, relationType, asset, isActive);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class CustomerFilter {\n");
    
    sb.append("    customerList: ").append(toIndentedString(customerList)).append("\n");
    sb.append("    riskLevel: ").append(toIndentedString(riskLevel)).append("\n");
    sb.append("    search: ").append(toIndentedString(search)).append("\n");
    sb.append("    isStore: ").append(toIndentedString(isStore)).append("\n");
    sb.append("    customerLevel: ").append(toIndentedString(customerLevel)).append("\n");
    sb.append("    relationType: ").append(toIndentedString(relationType)).append("\n");
    sb.append("    asset: ").append(toIndentedString(asset)).append("\n");
    sb.append("    isActive: ").append(toIndentedString(isActive)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(java.lang.Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }
}

